import pytest
import os
from datetime import datetime

if __name__ == "__main__":
    # 定义测试报告的路径和名称
    current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
    report_dir = os.path.join(os.getcwd(), "reports")
    report_path = os.path.join(report_dir, f"report_{current_time}.html")

    # 确保报告目录存在
    if not os.path.exists(report_dir):
        os.makedirs(report_dir)

    # 定义 pytest 执行参数
    args = [
        "-s",  # 显示标准输出
        "-v",  # 详细模式
        "--html=" + report_path,  # 生成 HTML 测试报告
        "--alluredir=" + os.path.join(report_dir, "allure-results"),  # 生成 Allure 报告数据
        "-n=auto",  # 并行执行测试（需要安装 pytest-xdist）
        "--reruns=2",  # 失败重试次数（需要安装 pytest-rerunfailures）
        "tests/",  # 测试用例所在目录
        "-m=smoke"  # 只运行标记为 smoke 的测试用例
    ]

    # 执行 pytest
    pytest.main(args)

    # 可选：生成 Allure 报告（需要系统已安装 Allure 命令行工具）
    # os.system(f"allure generate {os.path.join(report_dir, 'allure-results')} -o {os.path.join(report_dir, 'allure-report')} --clean")
